{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Optimize Throw\n",
    "\n",
    "[![Google Collab Book](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/tum-pbs/PhiFlow/blob/develop/examples/optim/Optimize_Throw.ipynb)\n",
    "\n",
    "This example uses automatic differentiation to find the optimal initial velocity in order to hit a target location.\n",
    "\n",
    "There is a related demo that trains neural networks to learn this task."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "%pip install --quiet phiflow\n",
    "from phi.torch.flow import *\n",
    "# from phi.flow import *  # If JAX is not installed. You can use phi.torch or phi.tf as well."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's write a function that computes the hit position given the initial position, velocity and angle of attack."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "'Starting at x=10, height=1 with velocity=1, angle=0 -> hit at x=11.414213'"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def simulate_hit(pos, height, vel, angle, gravity=1.):\n",
    "    vel_x, vel_y = math.cos(angle) * vel, math.sin(angle) * vel\n",
    "    height = math.maximum(height, .01)\n",
    "    hit_time = (vel_y + math.sqrt(vel_y**2 + 2 * gravity * height)) / gravity\n",
    "    return pos + vel_x * hit_time, hit_time, height, vel_x, vel_y\n",
    "\n",
    "f\"Starting at x=10, height=1 with velocity=1, angle=0 -> hit at x={simulate_hit(10, 1, 1, 0)[0]:no-color}\""
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "To plot the trajectories, we define `sample_trajectory`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<video width=\"864\" height=\"360\" controls autoplay loop>\n",
       "  <source type=\"video/mp4\" src=\"data:video/mp4;base64,AAAAIGZ0eXBNNFYgAAACAE00ViBpc29taXNvMmF2YzEAAAAIZnJlZQAAi1RtZGF0AAACrwYF//+r\n",
       "3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE2MSByMzA0OCBiODZhZTNjIC0gSC4yNjQvTVBF\n",
       "Ry00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAyMSAtIGh0dHA6Ly93d3cudmlkZW9sYW4u\n",
       "b3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFs\n",
       "eXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVk\n",
       "X3JlZj0xIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MSA4eDhkY3Q9MSBjcW09MCBk\n",
       "ZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0tMiB0aHJlYWRzPTEx\n",
       "IGxvb2thaGVhZF90aHJlYWRzPTEgc2xpY2VkX3RocmVhZHM9MCBucj0wIGRlY2ltYXRlPTEgaW50\n",
       "ZXJsYWNlZD0wIGJsdXJheV9jb21wYXQ9MCBjb25zdHJhaW5lZF9pbnRyYT0wIGJmcmFtZXM9MyBi\n",
       "X3B5cmFtaWQ9MiBiX2FkYXB0PTEgYl9iaWFzPTAgZGlyZWN0PTEgd2VpZ2h0Yj0xIG9wZW5fZ29w\n",
       "PTAgd2VpZ2h0cD0yIGtleWludD0yNTAga2V5aW50X21pbj0yNSBzY2VuZWN1dD00MCBpbnRyYV9y\n",
       "ZWZyZXNoPTAgcmNfbG9va2FoZWFkPTQwIHJjPWNyZiBtYnRyZWU9MSBjcmY9MjMuMCBxY29tcD0w\n",
       "LjYwIHFwbWluPTAgcXBtYXg9NjkgcXBzdGVwPTQgaXBfcmF0aW89MS40MCBhcT0xOjEuMDAAgAAA\n",
       "LaxliIQAO//+906/AptFl2oDklcK9sqkJlm5UmsB8qYAAAMAHt/g1Dr8ABzs3pvxG3d3vMUiBIDG\n",
       "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\n",
       "AABAAAAAA2AAAAFoAAAAAAAkZWR0cwAAABxlbHN0AAAAAAAAAAEAAA+gAAAEAAABAAAAAAZFbWRp\n",
       "YQAAACBtZGhkAAAAAAAAAAAAAAAAAAAyAAAAyABVxAAAAAAALWhkbHIAAAAAAAAAAHZpZGUAAAAA\n",
       "AAAAAAAAAABWaWRlb0hhbmRsZXIAAAAF8G1pbmYAAAAUdm1oZAAAAAEAAAAAAAAAAAAAACRkaW5m\n",
       "AAAAHGRyZWYAAAAAAAAAAQAAAAx1cmwgAAAAAQAABbBzdGJsAAAAuHN0c2QAAAAAAAAAAQAAAKhh\n",
       "dmMxAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAA2ABaABIAAAASAAAAAAAAAABAAAAAAAAAAAAAAAA\n",
       "AAAAAAAAAAAAAAAAAAAAAAAAAAAAGP//AAAANmF2Y0MBZAAe/+EAGWdkAB6s2UDYL/lhAAADAAEA\n",
       "AAMAMg8WLZYBAAZo6+PLIsD9+PgAAAAAHHV1aWRraEDyXyRPxbo5pRvPAyPzAAAAAAAAABhzdHRz\n",
       "AAAAAAAAAAEAAABkAAACAAAAABRzdHNzAAAAAAAAAAEAAAABAAAC8GN0dHMAAAAAAAAAXAAAAAEA\n",
       "AAQAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAA\n",
       "AAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAE\n",
       "AAAAAAEAAAAAAAAAAQAAAgAAAAABAAAGAAAAAAEAAAIAAAAAAQAACAAAAAACAAACAAAAAAEAAAoA\n",
       "AAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAA\n",
       "AAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAgAAAAAAgAAAgAAAAABAAAKAAAA\n",
       "AAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAA\n",
       "AQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAAB\n",
       "AAACAAAAAAEAAAQAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAAAAAFAAAEAAAAAAEA\n",
       "AAoAAAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAA\n",
       "AgAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoAAAAAAQAABAAAAAABAAAA\n",
       "AAAAAAEAAAIAAAAAAgAABAAAAAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAoA\n",
       "AAAAAQAABAAAAAABAAAAAAAAAAEAAAIAAAAAAQAACgAAAAABAAAEAAAAAAEAAAAAAAAAAQAAAgAA\n",
       "AAABAAAKAAAAAAEAAAQAAAAAAQAAAAAAAAABAAACAAAAAAEAAAgAAAAAAgAAAgAAAAAcc3RzYwAA\n",
       "AAAAAAABAAAAAQAAAGQAAAABAAABpHN0c3oAAAAAAAAAAAAAAGQAADBjAAAClwAAAL8AAACIAAAA\n",
       "vQAAAb8AAAD5AAAArAAAAL8AAAG5AAAA7QAAAKwAAACXAAABqAAAARYAAACBAAAArAAAAUwAAACf\n",
       "AAABngAAALUAAABpAAACNgAAAOcAAACyAAAAeQAAAcsAAADGAAAAYwAAAG0AAAGbAAAA3wAAAGsA\n",
       "AABxAAABcgAAAJ0AAABoAAABvAAAAMIAAACDAAAAbgAAAacAAAD8AAAAigAAAH4AAAGuAAAA7wAA\n",
       "AJoAAACWAAABwAAAAOAAAACcAAAAkAAAAQIAAAG9AAAAqAAAAIMAAABuAAABAAAAAQgAAAFLAAAB\n",
       "FQAAASMAAAH0AAAAvgAAAGAAAABsAAABPAAAAOEAAACCAAAAnAAAAYkAAADVAAAAfgAAAIQAAAGZ\n",
       "AAAA6QAAAH4AAAB8AAAA2QAAAQMAAAGfAAAA3gAAAIIAAACjAAABSgAAAPYAAACYAAAAmQAAAUgA\n",
       "AAD7AAAAgAAAAKoAAAEGAAAA9wAAAJsAAACmAAABDAAAAMAAAACpAAAAFHN0Y28AAAAAAAAAAQAA\n",
       "ADAAAABidWR0YQAAAFptZXRhAAAAAAAAACFoZGxyAAAAAAAAAABtZGlyYXBwbAAAAAAAAAAAAAAA\n",
       "AC1pbHN0AAAAJal0b28AAAAdZGF0YQAAAAEAAAAATGF2ZjU4Ljc3LjEwMA==\n",
       "\">\n",
       "  Your browser does not support the video tag.\n",
       "</video>"
      ],
      "text/plain": [
       "<matplotlib.animation.FuncAnimation at 0x21f593a97f0>"
      ]
     },
     "execution_count": 4,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "def sample_trajectory(pos, height, vel, angle, gravity=1., steps=spatial(time=100)):\n",
    "    _, hit_time, height, vel_x, vel_y = simulate_hit(pos, height, vel, angle, gravity)\n",
    "    t = math.linspace(0, hit_time, steps)\n",
    "    return vec(x=pos + vel_x * t, y=height + vel_y * t - gravity / 2 * t ** 2)\n",
    "\n",
    "angles = vec('angle', -1, -.5, 0, .5, 1, 1.5)\n",
    "trj = sample_trajectory(10, 1, 1, angles)\n",
    "plot(trj.time.rename('const'), trj, title=\"Varying Angle\", animate='time', overlay='args', color=math.range(angles.shape), frame_time=40)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's perform a classical optimization using gradient descent in the initial velocity `vel`. We need to define a loss function to optimize and get its derivative."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "@jit_compile\n",
    "def loss_function(pos, height, vel, angle, target):\n",
    "  return math.l2_loss(simulate_hit(pos, height, vel, angle)[0] - target)\n",
    "\n",
    "grad_fun = math.gradient(loss_function, wrt='vel', get_output=False)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Next, we define the gradient descent step and optimize for the velocity while keeping the other arguments fixed."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\phd\\phiflow2\\phiml\\phiml\\math\\_functional.py:600: RuntimeWarning: Using torch for gradient computation because numpy does not support jacobian()\n",
      "  warnings.warn(f\"Using {math.default_backend()} for gradient computation because {key.backend} does not support jacobian()\", RuntimeWarning)\n"
     ]
    }
   ],
   "source": [
    "def gradient_descent_step(vel, pos, height, angle, target, step_size=.1):\n",
    "    return vel - step_size * grad_fun(pos, height, vel, angle, target)\n",
    "\n",
    "fixed = dict(pos=0, height=1, angle=0)\n",
    "vel_trj = iterate(gradient_descent_step, batch(iter=25), 1., target=10, **fixed)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Now we can plot how `vel` changes during the optimization."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Figure size 216x216 with 1 Axes>"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 216x216 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot(vel_trj.iter.as_spatial(), size=(3, 3), title=\"Change in Vel\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "Let's visualize the corresponding trajectories!"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "c:\\phd\\phiflow2\\phi\\vis\\_vis_base.py:507: UserWarning: bounds argument is deprecated since 2.5 and will be ignored.\n",
      "  return PointCloud(math.expand(obj, instance(points=1)), bounds=Cuboid(obj, half_size=math.const_vec(1e-3, obj.shape['vector'])).box())\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<video width=\"648\" height=\"144\" controls autoplay loop>\n",
       "  <source type=\"video/mp4\" src=\"data:video/mp4;base64,AAAAIGZ0eXBNNFYgAAACAE00ViBpc29taXNvMmF2YzEAAAAIZnJlZQAAJf5tZGF0AAACrgYF//+q\n",
       "3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE2MSByMzA0OCBiODZhZTNjIC0gSC4yNjQvTVBF\n",
       "Ry00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAyMSAtIGh0dHA6Ly93d3cudmlkZW9sYW4u\n",
       "b3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTMgZGVibG9jaz0xOjA6MCBhbmFs\n",
       "eXNlPTB4MzoweDExMyBtZT1oZXggc3VibWU9NyBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVk\n",
       "X3JlZj0xIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MSA4eDhkY3Q9MSBjcW09MCBk\n",
       "ZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0tMiB0aHJlYWRzPTQg\n",
       "bG9va2FoZWFkX3RocmVhZHM9MSBzbGljZWRfdGhyZWFkcz0wIG5yPTAgZGVjaW1hdGU9MSBpbnRl\n",
       "cmxhY2VkPTAgYmx1cmF5X2NvbXBhdD0wIGNvbnN0cmFpbmVkX2ludHJhPTAgYmZyYW1lcz0zIGJf\n",
       "cHlyYW1pZD0yIGJfYWRhcHQ9MSBiX2JpYXM9MCBkaXJlY3Q9MSB3ZWlnaHRiPTEgb3Blbl9nb3A9\n",
       "MCB3ZWlnaHRwPTIga2V5aW50PTI1MCBrZXlpbnRfbWluPTEwIHNjZW5lY3V0PTQwIGludHJhX3Jl\n",
       "ZnJlc2g9MCByY19sb29rYWhlYWQ9NDAgcmM9Y3JmIG1idHJlZT0xIGNyZj0yMy4wIHFjb21wPTAu\n",
       "NjAgcXBtaW49MCBxcG1heD02OSBxcHN0ZXA9NCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAAO\n",
       "zmWIhAAQ//73gb8yy18iuslx+ed9LKzPPOQ8cl2JrrjQAAADAAADACNf+HmG6iATMFmMuR3KYP3f\n",
       "omKzkFxBFDYzx2b9XHlHoXgVa/8W6TUFa8Iq5PR881+K8/zU1f/dHKDbHhfWMyGNMgKwoY/Tf2jS\n",
       "l0e2O7iAbQuccrQCSiwPNiJaqBbPNeKctS3PyPcHZmnOCqalZY5XzXznuXqsAP+0Bzae9hwWaiuD\n",
       "E+eS8r/45sPUUconBZTIPjEMFeZLD/C2IEAVATHp3pMya3ICHOxA2eAXucBqqLxqZMksh86HyplF\n",
       "F0dnDwtd0NQCEmjuG35EFsF+b8rS46WAlxgW3enHkws4FajukK3ZOCXLXBJ9f/pn4h81f/nXTWvT\n",
       "DJ7sLV7bzzcg2l1/tfbmp66/YcHjLEmbIH0peGpLENRuToXfyHtFFpAwhNoyZFCoI7yZHyUfOHiI\n",
       "F+HeWdquULWH5KcZXLUo4U68o+BBDpxjRLpwVWwXrR/Ss070pkp8h2nZb8JIEgYBM+Efn0VWRuYP\n",
       "flpSLt5Q1TPDD3awgsz9H/G6xTyGI/xAhkdcMReJj4aJvKxOKMjKmB4YSOFNGO7/gVOq9F8LhrQB\n",
       "ogCgR1+lRpZfUpweG0tekNTvQM0wQezSCxRQag+WXijQS2XUsZx0Cp1lDDytAMcvP8Yh6hN0YhQz\n",
       "ODiDn1opmrE8dxgRySdlgeI1sJjkb2UbPzjZDrCf3rGIbk+RrZpRXGSAcvcLDjT9/0LfLOUkint6\n",
       "Or7YFZdCfVKB+DB5+a0eRPuo72biOYyh02d/ucaCaHSUrCE/fPdezJEmIucCl2T9v0Ud7mOWvqNJ\n",
       "gx0h+hn/R5mpXDjWotu6DZe9GoNuXOw7LO4WH5EomDcO9dpR1LbLqP8t96Rto75jDzeWW3QVNiZZ\n",
       "hAEC4Yw1I02YM2s3xl2DdUnxpj1zEFTc+nFbb3aL2gOaBjPzx/YSEGbSQQxq8q0DUfBHwqb3q+w0\n",
       "vwBeZTHDJeD2jRc0YdUpm2zMcF9M8j80ch7XtXmKhiwS//mbKGsgGQOIk0O2kR/kZVNim4e0/zZZ\n",
       "mxobH2axE6OQO+qzKm8Op/L1BfUbBkh38XSmx/HysxqzLsf+AY/bVojNss6G6WU3S1N1GmoSO8bu\n",
       "du3wpbO6mjtudJ2eL47gAGDg5PnXxgtKY1L5JgRMfMB+2pXvDfTCNB9DcW8YKLC4NjfJBS4LOEdx\n",
       "wqzbwwr71v+rNqoYK2PvqkQjuIj8wXh+WL/d3saVfGXW5uNldUStRCkk94/WapQ0mdBFCJdkcMD9\n",
       "pY+a62Cg3sdn+uXKMlu4rGbINefcA8ywT7rPRPL9v+BztojRNZ/MiNo3L/erG5rN6aPnZBzguha9\n",
       "DurF2wXIAhfgJzINa6ows+C2B6ff3HhLSi1e4t7pV4LKV/ooO2e3QSs6HE+Zfdyg3h+5cMSgX7D0\n",
       "RmxKTbyeRXUngU5YKPnZfSti+PAz2QUQOf8iaLQ1VrIOcGmCimeEEyyfT6TH/h0RfcF9vpiUqaEU\n",
       "29kMUJ2TMJD7KO846gJfQn/j13jct4R5dHqFr5944rK2LGQyNANCoVRHZjEMcbUDpKr8KBKaunMx\n",
       "g1R3aAZP9ddIEED60cFNcVTC1Piq+wJvE5mNPzLZwaq8LdYMw4BQUcfzMEGR4lWs96TD4u9RcxzP\n",
       "zVXlwtKuHWEHwS4/YUzD7fSS2MVAgQHSWiRB0bF6CdiAG13IN7WO/Ij0eo+azUcU0ueDpIs7kb6N\n",
       "rbC/lsVsGBJj2YlEK6tj3OnG0ElKCvsSfqCMLncg8vHqpJfbK3AxTihZtDMAW3kTSimaHFOHb6rJ\n",
       "YbmFo37ukXT38k0l+t2N5l9qPi2manoVF+cA5hZVj4qgXJu0f8rTkGwTd4ilLzv9siMOv1vSdcYG\n",
       "Cryoo84D+yNbUMJO9N9JxuZBO25rOQkJ/hsp1NUoWv2okAbLGd7KWrHR7bJFEPgiF2G0QAWMQw1q\n",
       "hJ/nMi8T9SrUhnN7z9gOyais4Q7LUhm/3cv4hFrvRaOtG4BemDIE2gTiANaNf4MXXQ5WX39YgVes\n",
       "/gLEMzIzGxY55i8Kxxrc/+NG9SQJ94IW0YBeKi+egIdBpZcjyiHujWC/ehoJlc8lFOcsqein/UQR\n",
       "1N6wkvKCqSV3vgu9Ob1RZcSt8Q964KC6Mz7fRN4g/Wy/VNEqWyi8xYlq3gZLdtS4Xf5XCo0zg8Zm\n",
       "ly3VGSMJ7CWDk6cc4gUeakXpXdP2Q7NIrvgq4tvId5BHxLXJ6O/1BI7djzMa0FEPNyJPV/czdcdy\n",
       "AQwatyqq8OeznvFuBIGT8V5/qVDRI3UZAc36k24KUA08br/7JJupdJ8VPgIR8v+V5mctJVYUxm9Y\n",
       "RONJJndUzcRP8r/dBt2kQWESyWBGfPND7/IKERn3TqOYksavii2cyM02rCed5K2BRzhuJwkrPGWf\n",
       "E3Gh3aeWeuVNIz6Kr4Ugw7FMvw7vlOLLlLHsvx90v3v6eXgvwUOjZ7kaXpoc70ZFI7Gf+9APhkFM\n",
       "yOS6hpp7m3sf1jPuK5sK+SKGbjixvdah+QRkOLWyuXxii/VzK/BwPjcw/R8HXbPy9ADI9PYVHrkA\n",
       "AAMARTThld/Y4tIcUt7pRXtnpPq6eCpgl7eC+Bq1K7O5DXJStQA5ocCnRlzI96MEJ9Y5r0kRAD9V\n",
       "A4BQLYlfRWBoUfqbz0eBeIyq/q8zGEJN94SBc2Uv3NCHe5ryo3dDflhpRijaE0y0awjHA7K2LkCU\n",
       "efNPLwX/mkU8sX7Nx87gHCjt8u6i+ojyqI8efyHZafh5fudmCSr0Orp+Y7O95LmwL0DXhUSkyMJ0\n",
       "rigYn1aJCWbrWaFakWAABIa2uppO5MsMsikxt0GCilY14HaqXYHjdKd9CzFV1T7BaoCK2fwWi/u/\n",
       "KC+T+VHLlr5XHxP0DTf75m+llPzB6Re4zuVflISaIBzm9VUqhcxQ3WYjo33fYGZCbIVewgLiy+lm\n",
       "6Ni404J4sY+vCcGJdmjaUtqRI5Vv0ocwE+0tpkcAy+mStIq8gqCgnyf8m304KjzSvXU86MWZJFgl\n",
       "Fi6qA+FXW7kiimN1rT8sF3dgE2kXNNVvTD+W6Ls7IlUvaPHojxsrGuUXv4oWgTwTTXZY2A8zdMVV\n",
       "Y4rcsLga0T06+1T+cwuD63TJlNG9NmoJl30B7UgdQ70bb3rCgS32DHdxNYJL4x5OW4F2/IFPqesA\n",
       "094MsQymyNlXuM1u/slVs9OfO32VH6BOndwKXpfWPHaxiVlxDG2A8363JXnimUrhVMHRS+XHzyhP\n",
       "yOeDtnc3GRm/Zut4/KSm8YkOutrTi47ug7cBmssGkBEx7RzUWRbzPjcIQRPyUt/hibYX5urhxaiC\n",
       "rqzUr1a94HwA1eB/54XSOnRTRf/Sj3CjBrT7qZizL/tajKDhJP/YeeBAe6R3YHxgiDPok24JN4Sg\n",
       "vaX+mRopsE2SKny5oZ6cIpa5qN2MK7h/D/7S2/q+U2a/LdjMrqFBQ5W5HtSomz9dDwV9HvrJFyRY\n",
       "HsgA2nlScdLSASd/jBUZdBfP5M07QgbEPDTz32sNqq9d1yzp2uDeB5NPzP0ocHXeWTK+6jNZ9yLi\n",
       "dcgKpWwmfV2J4/doHxQ8U46EZQODQSt0pD0a0ZzOITBCz/5i6lW5ekCb85NHZ5luYSUtmVq1odjG\n",
       "uVekcqI16Kzk77raFWmq06i//e/6qVgngj0aH0D81OJWxouUsPZzlfuIy5N+TQMKnNpevWau/nOZ\n",
       "cUC6KIwf6+eIPynLHfAQSeTnH7WW0uiik+tv0J+e7NNQGTVHrGyW+aaEvhnrAqhCifpVyORJpBT3\n",
       "IslXCSDrrLJpSz7hm9BdvcMUcZBYuml9B4OJZXfu7qM3E4ZbsRpbH1MaL4WGMHxK7hks/cRfQ7kO\n",
       "RahhlgirbUatSt2MTIM9jLTzphdQOrqYsm/TxgAdJq8LUoqt2anVvmZPBU5+wxnBXqohW1wOP9be\n",
       "ZqLOET3xykBgitEG3n99qQopXRg+Ou3Uqc8tN3DyzJZrQFcOJP8HvdnBWHFKYx43IAkwehJc6KrG\n",
       "3DrbEyOXqcwwW7VdA0Xqz8v7aKtfjZFexLKqIrvv4M2pWF39q50+0ax88kfhcz8apn/OcrWIVq+8\n",
       "1r8Nh4moNvx0XuvDzkEaUFCG7th4tJw/QCMASh2K9z8IGdUYZvIiGeeTvlFKQURNhkpYlzyLXc+0\n",
       "jOYAob8rVxkZaIJzB3gK36YBL4DSW0NclcB3S78J/osjLDbfJd1xz8CS0WsaNIoGI7s1S56drafm\n",
       "C/Tu0wQYQQ9J0LGIqqBoKyhgbt6iszGRHPVWE9DrVsMdXn/ayftjhYq9FQCcG55A1qDTOpqG8fPz\n",
       "l35NUCmPTAI6e3Adp0yMcSUEAA9m7ImuldGHhEQl3THaHfuMN99AZT+6aWFHLjYAHB4ARcmBtuOJ\n",
       "/9OKUixrNExw9RdmH5j+1M4U/clyk0yz9W8t32JyhmoiaGkdlC06v/phAixyDYPRAM+Ni+7+H0wD\n",
       "rglad5kLmIrDyBTU2GL/M73RkX7ccHuzu48Ryx/lNmlZH2cgxpAeHf/VhKBdq+6cIgzrhASnEKbU\n",
       "n/nxHJg+JAudzeREj1rcuGlLtk1WAmwW6UYV3UmyqznoMC6ViKsJeV2b+rHNVdKihzuUKbDK6N++\n",
       "fhO4dodyoL6Vv1toOWkmdqFJKrKjm1IsvC/1QtleAWWeYDTXYeOWrGVEct192ZiMnx3SVAGMSFLI\n",
       "R725mbnTlynrWEv/JnA7ZQYFqSf9e07FSkV3kU1mgwM+L2Zx+0LdWWiXFD1jGyT7wM6hA9dMgoU/\n",
       "9GyliLyJiIS2LGyB2dUdyPWbwALuQeXyonx0zOpZEKDYbhf8G5sJehXcXpxlH1Vh7striuwk/OKw\n",
       "89l9hlWE5+czgtQELoBU/3+0ZygsVwQS6fY0VjwT7aOKrojwcWJfkFqLH/HIkQpUtXnnD/Qfz6/8\n",
       "WXiskn5UwAm74k/hkncscryiyyqU2Px8F4Wmi8Pe2UZL0fDiDff8NVMdBgAEMGKNrhU+HDFGvRaD\n",
       "Pu9WCK5q8JPVJC9TvsGWTpIfnqB+465+HjofGOEAAASHQZokbEP//qmWBtxzPAE0QOf/f/P3IT98\n",
       "UmL5nSh/pR9CSQoNhklaVXrU99HPMiKNfLC+sqbtEuHTEq5dtVCVfnRg1UO6sETWEoEALPvfpUHJ\n",
       "Mlm6h4mdAz52y3j3rWC9kjGoC4kbI2W8EOCxSADTHFBTxzYevhM/u6O8Mc8T+/MDFISjU35rQ/Cs\n",
       "PhYCnTCSuP35rax5Vlrg4DBh4gxhssFIyCAdEHps9Sv2KRhi48gHHXW9RPozEjtxL3kLi2QqjBiG\n",
       "YCPmrMmBa5sMC9UhIVR5mTsuXlisNv9cHLTu6zuwJNpYtUyYDJq0woMnEfmarrX8oB7l2L9SPoKf\n",
       "V/+C6Te+/IMCZ3NT8t7eXupmyw27FH5bcW+N5PB70Wv4J6KUHGlihtOKgRLaxctKolVr8t0m2jfz\n",
       "bKQ5hJGgb/dtb/K6Ucj/ypBJNIF1mOBM9VSMPc8OdEHfFgOFmuBSVPXlDScnS1pYKjAg3ksRUAuS\n",
       "tBKSaOw9xj0ICD7D+4EntcBojFK9pWdcCFCpB1kucdB3W+vVQc13c57I4VtUbTibfhW7B+HqbnGM\n",
       "iCeq4EucOyskBTHspwPGkWLKp3kVk+4Iwmz+sbBKLVbX3teszhAOMKZgzP/ErBMl/nSnk08lksbA\n",
       "6erTiKQJ/GnCHGf9mb3NmSKOOz9M7nEaMhguhi2VvmLMkNjFfnnLMxL2O+PZS/f8JkF7VPQVSQ1P\n",
       "mSdM6TbDjTBF1fWZrZgKNMfSR5kxzVCru9pz/mprzfraPvnCn9BtqsRIFEz4wptYtc9yXxe8ck6+\n",
       "54VE/HuZW5C9mzVLQsZKMCtAPMXG8cG7teGKRLZoVWDxpL49f6AY+t4xqrU2MpAeenOlE3eNcw0h\n",
       "PzKBHcJblvWxG1nFnQq29QF2FtrJYWfhI4Z2cx+ed1h4/TIMkC2wQFEd8JtXYTDEIcTGCwmHQnA6\n",
       "8GZ3/Kzm5B+Fo75AiYX3bCwM4KR6QGZjg5F4KHR8IauuvZxBJSDT6nT0zCjEkPh0DM/jG84F7q3y\n",
       "2h5z9ZxtYPLMRdh5NSZXYJLbWkxYCljvTafbGZ0rj9nK3QvxuKAFFtrRCGWUGs2cfpKB0yTMy/Qo\n",
       "KmGrZ+dEJCmXVAkIICuy+EVhvxlXGeu85KIOu/+5l+jZM72TM5FjQnqnpmo1vuVKRoRzbzZ4JJ38\n",
       "jLArlCgk7aaqlFXxSUZnAZU51ML8qHIub6tBARpQR2Eqp6Kb4cGqd6yxyoJ1G44wWhbs8M+WcRBo\n",
       "waKwC6hWog1pTXNvnk4gUlIxB2uKpOLP92bxBe0LM0EY1UcNHFS4am89tRvDwj/ApB8x5svBHnIB\n",
       "jGEzce78wxzbNFia66GTXFL7WAfdcbnMq2AFItu9aCom4V8oFP41y+9FKggVCB5/04tzhjtRlcLL\n",
       "GSUpKTvGFstq7vlzo8sNZxnu6gyVUrdC+NYK5neKgczcri9ms7kxTGBsZTdAajePHxuJIkfHWS9h\n",
       "xDEacCFKmB31ZSSLXOc+0oGl14xpkUD4QhcqJVohsX/X4yc6pHxXuoPARxvoVSR/D8IDegAAAaZB\n",
       "nkJ4h38A5OaJJhZilVDXoJgtduWR6sRPZt+a9Bxk4zWf2cgBxOls4tHbIug4tIZBs2bRfEAKZTqF\n",
       "QlNECYKXnAspEJUAQgvE3SirDbhODTTUossRXQ30zLMPjuvHGwQbSyXIKFEfz5Ja4+aLahb2cE4d\n",
       "lboF8OotrUgA6c2fkwJG4vfmMhiLuyWRWxPOwXbDA8c3O9s1sLoiE9qTtwP0Uur4x0nMr6HK79X3\n",
       "pVSqc45i2SWZqLyBzbzc7gOvtQpABQU8Iw4yqX+okKqXbFDkTUhzQNpT6m1h3AFbK9GaQC1SCblm\n",
       "+lTXR/FnBrS/4jIE/1di1xt17QxJ72wMNbxbDETNKjJHYgtZd7hBZxUkQOuHEsLIJXyVBdKdGlIP\n",
       "SQzLsiy8+M1S+lN6w6rRoq5HQ29hfnCSpi4kz9dP2pr4OYuIL1LQNAA/G3DJ2C0ZClpvla6Sq2fv\n",
       "3+fB27rXPZR8v2VZUS5sYNryIbvKGS7iUA97yzzojeS1u33Uygjx0B6xl+vl5pqHXwIQn89etZaZ\n",
       "rllb2RyOWILBQwB06HsmhGjub9g14QAAAW4BnmF0Q38BRW6NOIVZg1xXrsUFdAYqeqDA4/TY2jAU\n",
       "olWqAAuoC+/mSoTRGgs50O1qUl/+vc7cpQT82ridQ2h0nJDbN09xnsXansLp4HNSQdvpSQV6V8Ku\n",
       "DhxrWzZQ60A2tQnc2IQUoh/O67q1zf24GUU00cidqMwE7Jpg3RC+myOibDMLEzKrZ7hXIuvxkzad\n",
       "O+QMfOBeewI2GFpzhMYYDgEMR64Pb8AVBcnGSvCBYONcKurZzGs3YFKF58cZmDtBum/QmnuGq7zf\n",
       "Br/s1LkQAIRrMqVNGAIY1fQaeDb8B8wdW6S+F+dXymT1ldL0JxceeIh9I/01aGSf1N/U8QJedfk+\n",
       "ssHGXmLZg+yFNVkEgE3D6ZYLOKNA7+N9LCeoTm1gnlOMxB6CdSNn7dvrOIeDWajyWJzLAfpLnZLp\n",
       "evKRs0LGp2K2LWk+M4VO4F4/QsFXmu2ArVvOThcBNfpp+B66jM8g0JeZyb3/XEYAZUAAAADmAZ5j\n",
       "akN/ABh+0enav5153wI0uS9IiTcP97SzNl8ZE0AJOUImExlYXVLrW6/G6IYrbO1bIAVrrKZXWJB6\n",
       "ZGgSMQaBafcUOpsxfzraYNXlfnoqbHEbtR+QqTiesnWBz4ItX8xIE6uIcMI5RM6YTfXnqRy7lArG\n",
       "GnlQ8f6uUXieSvNZBPX4S7OjWyNvXgIcLqgP8fBfXdWpu1HHx6FZnlqX4pit+OL6YlGWGilBJXD2\n",
       "hxRQF58geEkIQAxB6jDQMkp1ungeIQwwLlI7kwpUaJdNGZ3gCFwm/MWVs03VsVtQsJzTPL2Q04EA\n",
       "AAGKQZplSahBaJlMCH///qmWACISOjdMhagAAp1H+W92fYBJSL//KV2TH39/NjvDNsfeFYrutLMd\n",
       "Ve1aLwxtoNJaE3CQ9dV5/dLhO1jDIWPHvcceY1KlhOZvW3CdaH7feZ4dzwvaNKU2RK40cc4s67KR\n",
       "ZvhiCuBUZCbojMH1gCZhsHPG47kruhV9W3VMywIryTn7tSc3wX87FlEf5SQi7phj6wRhMMXtoHZu\n",
       "8X+uUJk+4Q5fI5k8DanIuk80wYU/C/wzcZXwe3NGyBxkV6CYEc7iLuAN/8+Z4M9Ih+IdYQjeALt/\n",
       "iTM/ERAzM70gDEFDXUV01gGW8iIJ6vAmhTrqgq+DRGft5rV4pMR7OaT92+ku0riG5bC9CjzreaXy\n",
       "81JMK3OkSiMxsgpaYp1u7wZnxgtDraEEo8JMydKN3BvbIpx+S7wLKWuiK//m/VAYIRtWi5oWHixJ\n",
       "kgHbXxxaPMGcyVWd4r/kP3svt4wjQTyhbBQ8yZcv5SFwCJb9PwEJzp9LDF0wQmjGYtWCpKoETQAA\n",
       "AQZBmoZJ4QpSZTAh//6plgAjBkx3qphdkrZQ2uZkDQDyditOdxpi6olcsGnzcVBQsfjgHwdIy7Bo\n",
       "2j6se90Pgf6/KCfjdkNqEHry1BLzmq7tp5zULRkd0snG1tTswcsDSXihFSSTqEBAaq0A6eJSjOb8\n",
       "Bre4b/kV7t0ZoM+mX+I5iEZEyLnv+/CUjsEdoqjb+799uTb3LoRW3hr5nXjZi2xDTetuCzhAO0IZ\n",
       "5SVatvuNPoGgGumC3z9MaX0soj6Mluv7klrLukThc5w2r8h+ljc3CuX/V3+PpK/P334C1dT2X2iu\n",
       "vMzfFc5PlDStK2VJCNBeGD33/4QLq6Nlya+x6uhT44VmDlXVAAABOEGap0nhDomUwIf//qmWACIG\n",
       "THeqmF2GzkEa5e35YaVbChpm0Btb+KAIxg8SJHpvlrr/s45xHSKvD0vVSjxC5wo9hdh+hix/R922\n",
       "OvScU58qCMatyQCO5ejhRVUvOe2piHMnKfOAgfCi0X8WIW/2w2SDrvi1a9z0wE9a1B3qeIXhV9sl\n",
       "4trGY6+eI50ejXTiEt/5xdVKLHaChak+iWqftEiSGEuBaTcrgFqyiZjwh1jaXZLIQLgwNaN/9yN2\n",
       "xejqG1cZx0zSshTudHAmtxFx+VlMmy5NfzCPJO8IZoCbK5bCXy6nH4mA/PJe1wSH2ShD8R9lXZtz\n",
       "Z98pLcqB5DSwr8ksPrNxYgRhCa14WYapXmDDx4/9TwVA58gR8bXDH5PptUVZy4AMlCwvrBB5XWQs\n",
       "X77FyFD9tF3VwQAAAWBBmshJ4Q8mUwIf//6plgAiBmUDIB3soCzUIwoiq3rZ+GhYABYDR0W+U6y6\n",
       "2nIVQn//buikytOVyHbDOjgkP72Pe7ktNcb1AiY86AWMh9pOiwMfuOCdy0AYbsD1BCf7rDPfIoI2\n",
       "4QlNP8e7ahvvz2MXvtTdUjbTlfHEagyFukltU5Y5ymcfZiXzMMu70iiDNo4ZuWSZm5kNK8SnWlKm\n",
       "FO3LfZb5SBBCWc0MANO9/BSEnqs0jqU7jE+HUROeiRApu0CQTf3O8Qlpl6x74dR1D0BUNFMqBldg\n",
       "PRLZnAhRoviODU9kYb+869DAogQs/qkJR5dp84Op0nFjyLtmUmlH3XZ0rYCOXVhTBovYc6PkqO+b\n",
       "9caNpSl6tReWp3fbHgeOVZ8shCFBSQ3zzes9YcM3IDTHd3SbdRduBukoZG7SZAUsU9UVrKMuD/8G\n",
       "PjoKNrDTo+1fQp80ySRJxhOCx0QVYj1gAAABLEGa6UnhDyZTAh///qmWACESic1Bo+yYf3AEp+Qa\n",
       "SfVedwKj0uqC5GzVdauEvn5byyT29wQGHsAxmfgOttuzCC9GQczKvm4J4Bcmvst3d+lr2TfKamcf\n",
       "GdjnMWMmhRTd+2XmWsHVJKonCfmwY4j4W7X4aZYH39zaP+3h7/5F3bRC65xOaWsomI0DaX6Dp+nx\n",
       "PPn32XdJwwbWtIF7vsOsUfsoQ35hJ9n7aOASivJr3g9Tnz3o/foN5+M2UsGX9tMWDh4ScWVKZa9l\n",
       "Jwo/AH2Iz8gShol+TGQhDY5gA98adG6n1w058YtcMNfL6DZrKdNv5Z7bt+C8M2xdT4RKx+4zr/Ai\n",
       "CbHzUtUqNH8AUu8L8h5+LUG3su9s7TmYHXlcY9JTn6kSIPgQmbMlN/cgvAAAAIZBmwpJ4Q8mUwII\n",
       "f/6qVQAJAcc8WVx1obeY91AFq9Eg1Rs+CsqUQFsa7oa29/wk9rr/hVGUFx7wd7VBA1Q4SKOv1Nj5\n",
       "Z+CbyjLHTPfe56ykB83Esf+V1J08UTfVx0Fub39G9YBY0e/TegVgSEXETW05nlYD57fY1bAOjSOG\n",
       "hQdUR8L9eKbh0wAAAJlBmytJ4Q8mUwIIf/6qVQAIwauKe2NXlyATkAa3gq96kte4eoEKF8PVZD7U\n",
       "+YuSUjlxC976Pe4O3g/J2ibGnb/rn+7akV3pCNxZFsX+sLNRF5csUJZ3w9ZjjPkBAD8y1Ybc+u4b\n",
       "HENoHiMiNgwAFeGGeG+5zF3fDXCQxfEFeA6NhjMkGhHEJ0z3DaDxhwRUJmX4gi/yv/K3HtgAAACZ\n",
       "QZtMSeEPJlMCCH/+qlUACIHMyyrMBmbAAbPew/FDQi6Y5rxoDBzrd8WGvnLhNPK+Mjo16xMOIuko\n",
       "dje7anCDGYjxJ9xUcL3/VbxNNn2IYpPq6IlhYajWyWIaPSC21s4PTj+LO2Rh0kvj5I/P+74LISag\n",
       "SPkNh/aG/R5iWrswOZrYh46kN2+f2940ZRNBf/2Wr0YlsMU+Mra1AAAAgUGbbknhDyZTBRE8Ef/+\n",
       "tSqABEGkeMedkAQ9WsRLPz/71Yb1Lx0WNRlb7xZHQCj6a3UkXi7+7anckqVzOvpQBw61gYUj1Z/Y\n",
       "pOGaOn9I5lflaqV1vZxmT765nD5R64N3+UfLWKEU9m45o2C/E+H3Ds/CbayG8JQY8wEJNoa11pEX\n",
       "wQAAADUBn41qQ38AE1gVz6oQw/zUwEZVDpiZrGY84Qpv9hH6Op7JbW9rCZXTPQpgaRahH/XigLuT\n",
       "QQAAAJtBm5JJ4Q8mUwIIf/6qVQAJAcAVnFnl+iruDpeSJ8LUHAOfGW28ozrbb1maAlAEWGcV+e2p\n",
       "UFjTcqceSZDIocgJ8tdn19Xv6hvt83+iB6GN87Ts0qULEFX2OCWsj9lwyZlQRcOwZp9s22y68Cwk\n",
       "CIKD5CrNBojQs4ClSDTq3X4c8BgnxClnmdomvhkWwa5rteOW+exH3n93MleCLQAAADpBn7BFETw7\n",
       "/wAOP8LNgecUkQeOB0uI4gUvHmU8wv4V26BPNpIXcMt9pHWn0LwA6XD5BZLS6O1sLLCAAAAALgGf\n",
       "z3RDfwASWyyeaf4yC7htPgZzf5w0tLPomcojqaXSWkfJkHsfn5SZaNZ39bAAAAAqAZ/RakN/ABHY\n",
       "MqRqvCniF+Pa6jfgrYB+gqHopqfVb2eBMPIJ9/ouuAi5AAAAfEGb1kmoQWiZTAh///6plgAiFAET\n",
       "44GSKq5FrszZsqcuZGQr5G05lWL4nttUfQc+UH4HLuDZzmAUV0Sjb5hr3lOTXibm4AWGAwucD2rD\n",
       "rijyXsPTNA5bW/I3JAqBOgyLRdYCc7ssojBUKo8QERur/0/pfNkn0rjiWSAqm0EAAAA9QZ/0RREs\n",
       "O/8ADFZ1JpWRAUNeNpN8HgJ6yTIjp9MCeDUc6DwTuJdJFAAWE4AkIdADGVuf+Z2yYSFMLO87EgAA\n",
       "ADABnhN0Q38AGIFS+5iliRXeIs4PyZZZ0oRtwCUSJTTk2gBbboRjWgSRQckgML7u70cAAAAdAZ4V\n",
       "akN/AA/hQ9wQuQAJy160vQAtBcNbQl8Y26IAAABgQZoZSahBbJlMCG///qeEADnieRr2xKal1u2W\n",
       "tkMJuzz/Mz21Ja7wSHhto5+M8fk2Bsuq/OWxABMWyjL5VSbEOUtxdUGyNv5D/HmxyTUK0JLpQIJf\n",
       "5i2FvBX4cPA0W9ZLAAAAIkGeN0UVLDf/AA/ilVMMHR74dn0Uzz6r5RgBGfE4shtyL3EAAAAWAZ5Y\n",
       "akN/AA/hQ93Xc7fHlDhr9nnaFQAABCttb292AAAAbG12aGQAAAAAAAAAAAAAAAAAAAPoAAAKKAAB\n",
       "AAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAA\n",
       "AAAAAAAAAAAAAAAAAAAAAAAAAAACAAADVXRyYWsAAABcdGtoZAAAAAMAAAAAAAAAAAAAAAEAAAAA\n",
       "AAAKKAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAC\n",
       "iAAAAJAAAAAAACRlZHRzAAAAHGVsc3QAAAAAAAAAAQAACigAAAgAAAEAAAAAAs1tZGlhAAAAIG1k\n",
       "aGQAAAAAAAAAAAAAAAAAACgAAABoAFXEAAAAAAAtaGRscgAAAAAAAAAAdmlkZQAAAAAAAAAAAAAA\n",
       "AFZpZGVvSGFuZGxlcgAAAAJ4bWluZgAAABR2bWhkAAAAAQAAAAAAAAAAAAAAJGRpbmYAAAAcZHJl\n",
       "ZgAAAAAAAAABAAAADHVybCAAAAABAAACOHN0YmwAAAC4c3RzZAAAAAAAAAABAAAAqGF2YzEAAAAA\n",
       "AAAAAQAAAAAAAAAAAAAAAAAAAAACiACQAEgAAABIAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAA\n",
       "AAAAAAAAAAAAAAAAAAAY//8AAAA2YXZjQwFkAAz/4QAZZ2QADKzZQKRPl4QAAAMABAAAAwBQPFCm\n",
       "WAEABmjr48siwP34+AAAAAAcdXVpZGtoQPJfJE/FujmlG88DI/MAAAAAAAAAGHN0dHMAAAAAAAAA\n",
       "AQAAABoAAAQAAAAAFHN0c3MAAAAAAAAAAQAAAAEAAACgY3R0cwAAAAAAAAASAAAAAQAACAAAAAAB\n",
       "AAAUAAAAAAEAAAgAAAAAAQAAAAAAAAABAAAEAAAAAAgAAAgAAAAAAQAADAAAAAABAAAEAAAAAAEA\n",
       "ABQAAAAAAQAACAAAAAABAAAAAAAAAAEAAAQAAAAAAQAAFAAAAAABAAAIAAAAAAEAAAAAAAAAAQAA\n",
       "BAAAAAABAAAQAAAAAAIAAAQAAAAAHHN0c2MAAAAAAAAAAQAAAAEAAAAaAAAAAQAAAHxzdHN6AAAA\n",
       "AAAAAAAAAAAaAAARhAAABIsAAAGqAAABcgAAAOoAAAGOAAABCgAAATwAAAFkAAABMAAAAIoAAACd\n",
       "AAAAnQAAAIUAAAA5AAAAnwAAAD4AAAAyAAAALgAAAIAAAABBAAAANAAAACEAAABkAAAAJgAAABoA\n",
       "AAAUc3RjbwAAAAAAAAABAAAAMAAAAGJ1ZHRhAAAAWm1ldGEAAAAAAAAAIWhkbHIAAAAAAAAAAG1k\n",
       "aXJhcHBsAAAAAAAAAAAAAAAALWlsc3QAAAAlqXRvbwAAAB1kYXRhAAAAAQAAAABMYXZmNTguNzcu\n",
       "MTAw\n",
       "\">\n",
       "  Your browser does not support the video tag.\n",
       "</video>"
      ],
      "text/plain": [
       "<matplotlib.animation.FuncAnimation at 0x21f5c08bca0>"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "trj = sample_trajectory(vel=vel_trj, **fixed)\n",
    "plot(trj, vec(x=10, y=0), overlay='args', animate='iter', title=\"Ball trajectory and target\", size=(9, 2))"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "phiflow2",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.8.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
